home *** CD-ROM | disk | FTP | other *** search
/ L' Effet Pommier 2 / L'Effet Pommier - Volume 02.iso / Réflexion / Giaco / CodeComputer.p next >
Text File  |  1993-04-09  |  2KB  |  47 lines

  1. unit ComputerRsrc;
  2. {compile it as a code resource of type 'GGGG' with ID=128, but the Project is already setted to do it}
  3. {and then copy and PASTE it with ResEdit into Giaco resource fork.}
  4. interface
  5.  
  6.     type
  7.  
  8.         sqboolarray = array[1..70] of boolean;
  9.  
  10.         InfoRec = record
  11.                 squares: sqboolarray;     {this array tells you which squares are already occupied (=true), 70 is the max number of squares for the game}
  12.                 Numberofsquares: integer;                {number of squares of the current match}
  13.                 Yourmove: integer;                    {This is the number you have to modify, and tells that}
  14.                                                 {your move will occupy the yourmove and yourmove+1 squares}
  15.             end;                            {for istance, if you set Myinfoptr.Yourmove:=2, this means that you occupy}
  16.                                   {squares 2 and 3 with your piece. Check squares[2] and squares[3]}
  17.                                                    {to be sure they are empy (false)}
  18.         InfoPtr = ^InfoRec;
  19.  
  20.     procedure Main (Myinfoptr: InfoPtr);
  21.  
  22. implementation
  23.  
  24.     procedure Main (Myinfoptr: InfoPtr);
  25.         var
  26.             i: integer;        { <- needs only to show a stupid computer algo}
  27. {put here all the variables you need, remembering that each time you receive the}
  28.  {board situation (Myinfoptr. squares)}
  29.  
  30.     begin
  31.   {Here you have to tell which is your move setting the Myinfoptr.yourmove field}
  32. {remember to check the move is possible if you don't want to lose the game}
  33. {the following is an example of a 'stupid computer'}
  34.  
  35.         i := 1;
  36.         Myinfoptr^.Yourmove := 0;
  37.         repeat
  38.             while Myinfoptr^.squares[i] do      {goes to the first free square, and it has to be one move, otherwise the game}
  39.                 i := i + 1;                                              {already ended.}
  40.  
  41.             if not Myinfoptr^.squares[i + 1] then {if even the next one is free than make that move}
  42.                 Myinfoptr^.Yourmove := i;
  43.             i := i + 1;
  44.         until (Myinfoptr^.Yourmove <> 0) or (i >= Myinfoptr^.numberofsquares);
  45.     end;
  46. end.             {for any question or explanation or whatever you want to speak about e-mail to}
  47.                      {turner@sabrina.dei.unipd.it}